<?php

namespace Admin\Model;

/**
 * 角色管理页面 model(数据层)
 *
 * @package         YDCMS
 * @author          QQ:644157559 <644157559@qq.com>
 * @version         $Id: SysAdminUserModel.class.php v1.0 2014-06-13 17:27:03 $
 */
class AdminModel extends CommonModel {
    // realtions
    protected $_link = array(
        // 一个管理员属于一个角色
        'roles' => array(
            'mapping_type' => self::BELONGS_TO,
            'class_name' => 'Roles',
            'foreign_key' => 'role_id',
            'mapping_fields' => 'name'
        )
    );
    //自动验证
    protected $_validate = array(
        // 用户名不能为空
        array('username', 'require', '用户名不能为空！'),
        // 用户名不能大于30个字符
        array('username', '5,30', '用户名长度范围5-30个字符！', 1, 'length', 3),
        array('username', '', '帐号名称已经存在！', 0, 'unique', self::MODEL_INSERT), // 在新增的时候验证name字段是否唯一
        //密码
        array('pwd', 'require', '密码不能为空！', 1, 'regex', self::MODEL_INSERT),
        array('cfm_pwd', 'pwd', '确认密码不正确', 2, 'confirm', self::MODEL_BOTH),
        
        //用户邮箱
        array('email', 'email', '用户邮箱格式错误！', 2),
        // 状态
        array('status', '0,1', '无效的状态！', 1, 'in', 3),
        
        //角色验证
        array('role_id', 'checkRole', '您选择的角色不存在', 1, 'callback', 3),
    );

    protected $_auto = array(
        // description
        array('remark', 'htmlspecialchars', 3, 'function'),
        // 创建时间
        array('subtime', 'time', 1, 'function'),
    );
    
    /**
     * 验证角色字段
     * @param type $roleid
     * @return type
     */
    public function checkRole($roleid) {
        return D('Roles', "Service")->existRole($roleid);
    }
}
